package com.alibaba.cirtus.ots.application.adapter.ability.model.sdo;

import com.google.gson.annotations.SerializedName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @description:
 * @author: yuhw
 * @date: 2021年08月26日 10:20
 **/
@Data
public class AllocateOrderSDO implements Serializable {
    private static final long serialVersionUID = 178064292456424081L;


    @SerializedName(value = "id")
    private Long id;

    /**
     * 总部成本中心
     */
    @SerializedName(value = "sap_cost_center")
    private String sapCostCenter;

    /**
     * 订单原因
     */
    @SerializedName(value = "order_reason")
    private String orderReason;

    /**
     * 客户采购参考号
     */
    @SerializedName(value = "sap_ref_po_no")
    private String sapRefPoNo;

    /**
     * 采购凭证
     */
    @SerializedName(value = "type_card")
    private String typeCard;

    /**
     * 创建人
     */
    @SerializedName(value = "founder")
    private String founder;

    /**
     * 确认量
     */
    @SerializedName(value = "confirmQuantity")
    private String confirmQuantity;

    /**
     * 创建时间
     */
    @SerializedName(value = "gmt_create")
    private Date gmt_create;

    /**
     * 更新时间
     */
    @SerializedName(value = "gmt_modified")
    private Date gmt_modified;

    /**
     * 创建人
     */
    @SerializedName(value = "creator")
    private String creator;

    /**
     * 修改人
     */
    @SerializedName(value = "updater")
    private String updater;


    /**
     * 生效日期
     * 预报单提交后的生效日期，用于集团总部集中回复的统一安排；年月日；
     * 默认规则（形成配置文件）：
     * 	当日16:00前，当日；
     * 	16:00之后，次日；
     * 可手工修改；可填写当日或者当日之后的日期；
     */
    @SerializedName(value = "beginDate")
    private Date beginDate;

    /**
     * 期待交货日期
     */
    @SerializedName(value = "expectedDeliveryDate")
    private Date expectedDeliveryDate;

    /**
     * 完成时间
     */
    @SerializedName(value = "completeTime")
    private Date completeTime;

    /**
     * 发货库区id
     */
    @SerializedName(value = "shipAreaId")
    private String shipAreaId;

    /**
     * 发货仓库id
     */
    @SerializedName(value = "shipWarehouseId")
    private String shipWarehouseId;

    /**
     * 收货库区id
     */
    @SerializedName(value = "receiveAreaId")
    private String receiveAreaId;

    /**
     * 收货仓id
     */
    @SerializedName(value = "receiveWarehouseId")
    private String receiveWarehouseId;

    /**
     * 产品组
     */
    @SerializedName(value = "productGroup")
    private String productGroup;

    /**
     * SAP调拨预报单编码
     */
    @SerializedName(value = "outAllocateApplyOrderId")
    private String outAllocateApplyOrderId;

    /**
     * SAP调拨单号
     */
    @SerializedName(value = "outAllocateOrderId")
    private String outAllocateOrderId;

    /**
     * 调拨预报单id
     */
    @SerializedName(value = "allocateApplyOrderId")
    private Integer allocateApplyOrderId;

    /**
     * 租户id
     */
    @SerializedName(value = "tenantId")
    private String tenantId;

    /**
     * sap渠道
     */
    @SerializedName(value = "sapChannel")
    private String sapChannel;

    /**
     * 总部组织编码
     */
    @SerializedName(value = "sap_sales_org_id")
    private String sapSalesOrgId;

    /**
     * 客户
     */
    @SerializedName(value = "customer")
    private String customer;

    /**
     * 提报组织id
     */
    @SerializedName(value = "applyOrgId")
    private String applyOrgId;

    /**
     * 调拨单编码
     */
    @SerializedName(value = "code")
    private String code;

    /**
     * 版本
     */
    @SerializedName(value = "version")
    private Integer version;

    /**
     * 扩展信息
     */
    @SerializedName(value = "features")
    private String features;

    /**
     * 是否为退单
     */
    @SerializedName(value = "returnOrder")
    private Boolean returnOrder;

    /**
     * 类型
     */
    @SerializedName(value = "type")
    private Integer type;

    /**
     * 状态
     */
    @SerializedName(value = "status")
    private Integer status;

    /**
     * 创建时间
     */
    @SerializedName(value = "createTime")
    private Date createTime;

    /**
     * 更新人
     */
    @SerializedName(value = "lastUpdateUser")
    private String lastUpdateUser;

    /**
     * 单据日期
     */
    @SerializedName(value = "docDate")
    private Date docDate;

    /**
     * 装运方式
     */
    @SerializedName(value = "shipMethod")
    private Integer shipMethod;

    /**
     * 合计数量
     */
    @SerializedName(value = "totalQuantity")
    private Long totalQuantity;

    /**
     * 折扣
     */
    @SerializedName(value = "discount")
    private Long discount;

    /**
     * 合计金额
     */
    @SerializedName(value = "totalAmount")
    private Long totalAmount;

    /**
     * 备注
     */
    @SerializedName(value = "remark")
    private String remark;

    /**
     * 是否需要还货
     */
    @SerializedName(value = "sendBackRequired")
    private Boolean sendBackRequired;

    /**
     * 确认时间
     */
    @SerializedName(value = "confirmTime")
    private Date confirmTime;




    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 更新时间
     */
    private Date gmtModified;





    /**
     * 总部成本中心id
     */
    private String sapCostCenterId;





}
